---
slug: 在python中常见的字符串操作
title: 🔣python中常见的字符串操作
authors: [ZXK]
tags: [python, 字符串]
---

<!-- truncate -->

## 1、👀 使用 `print` 函数中字符串的常用方法

> 现有一字符串变量 如下所示:

:::info **重点**

```py
string = "abcdefg"
```

:::

> ### 1、如果想要知道这个字符串变量的长度，可以使用 `len` 函数，`len` 函数会返回被放入的字符串长度，顺便可以使用 `print` 函数 来将 `len` 函数计算好的返回值结果一并显示到屏幕上

```py
print(len(string))
```

> ### 2、在屏幕上显示字符串变量中的第一个字

```py
print(string[0])
```

> ### 3、在屏幕上显示字符串变量中的最后一个字

```py
print(string[-1])
```

## 2、😎 善用字符串数组

在上面这些例子中我们知道了在 `python` 中如何显示某个字符串变量里的字符长度，还知道了如何在屏幕上显示此字符串变量里的第一个字和最后一个字。
这种在`print`中字符串带有`[]`号的代码，这种东西我们一般称作为 **字符串数组** 。

:::tip **疑惑解答**

因为在`python`中，存储字符串的方式其实是用数组(可以理解为`python`语言中的**列表**)，所以我们可以使用数组的**下标**(也可以称作 `index`)，通过告知其下标，`python` 就知道要访问此字符串中的某个空间

:::

#### 所以我们可以利用字符串数组，去做一些方便的字符串操作

> ### 1、显示字符串变量中的前三个字

```py
print(string[0:3])#结果为 abc
```

> ### 2、显示字符串变量中从零到尾的所有字

```py
print(string[0:])#结果为 abcdefg
#后面那个空着不写则表示我不知道此字符串中哪才是末尾，
#所以可以空着让python自己去计算这个字符串的最后一位
```

> ### 3、显示字符串变量中的前三个字(第二种方法)

```py
print(string[:3])#结果为 abc
#左手值如果空着不写，则会被python默认为0所以和0:3等效
```

> ### 4、显示字符串变量中从零到尾的所有字(第二种方法)

```py
print(course[:])#结果为 abcdefg
#和 0: 值等效
```

:::tip**简答**

拿第一个方法来简答，`[]`中有数字 0 和数字 3，他们中间有一个`:`号，这个冒号是用来分割这两个数字的，其作用是方便表示数组从 `某个地方之后`**及**`包括它自己本身` **`到`** `某个地方之前`**但**`不包括它自己本身` 的一种表达方式，下列代码的功能是，提取了 string 字符串变量里的从下标 0(包括它自己本身) 至 下标 3(不包括它自己本身) 之间的所有字符

:::

:::caution**详细解答**
(新手可能会好奇，为什么用来表示空间的下标数是用 0 而不是 1，因为这计算机的世界中，它们只会从 0 开始数数，计算机中的第 0 个空间 正好也就对应了我们认知世界中的第 1 个空间了)
中间的 3 也就对应了我们正常人认知中的 4 ，所以 0:3 也就等同于 1:4 (从第 1 个空间并且包括了第一个空间它自己 一直到 第 4 个空间但不包括它自己之间的所有字符) 所以屏幕上就会显示为 "`a b c`"
:::

## 3、🚀 python 自带的字符串功能函数

> ### 1、将字符串字母内容转换成大写

```py
print(string.upper())#结果为 ABCDEFG
```

**补充**

在不改变原字符串内容前提下将字符串转换成大写并且返回

> ### 2、将字符串字母内容转换成小写

```py
print(string.upper())#结果为 abcdefg
```

**补充**

在不改变原字符串内容前提下将字符串转换成小写并且返回

> ### 3、将字符串首字母转换成大写

```py
print(string.title())#结果为 Abcdefg
```

**补充**

在不改变原字符串内容前提下将字符串首字母转换成大写并且返回

> ### 4、将字符串开头多余的空格删除

:::info **列入有以下字符串变量**

```py
buffer="           abcdefg"
```

:::

```py
print(buffer.strip())#结果为 abcdefg
```

:::tip **补充**

在不改变原字符串内容前提下将字符串开头多余的空格删除后并且返回其最终结果

:::

> ### 5、查找字符串中符合内容的字符下标

```py
print(string.find("b"))#结果: 1
```

**补充**

查找字符串中符合内容的字符下标,查找成功返回被查找的字符下标,如果没有找到则返回`-1`

> ### 6、调换字符串中的内容

```py
print(string.replace("a","b"))#结果: bacdefg
```

**补充**

改变内容将字符串内容改变,右项变左项

> ### 7、判断字符串变量中是否 **`存在`** 此内容

```py
print("abc" in string)#结果: true
```

**补充**

不改变原有内容,判断字符串变量中是否 **`存在`** 此内容,存在返回 `true`,不存在则返回 `false`

> ### 8、判断字符串变量中是否 **`不存在`** 此内容

```py
print("abc" not in string)#结果: false
```

**补充**

不改变原有内容,判断字符串变量中是否 **`不存在`** 此内容,不存在则返回 `true` ,存在返回 `false`,

## 4、🤪 字符串的组合、拼接、方式

> 现有两字符串变量 如下所示:

:::info **重点**

```py
string1 = "abc"
string2 = "def"
```

:::

```py
print(f"{buffr}   {buffr2}")  #里面是{表达式},也可以配合len函数执行
```

:::tip 补充
其实可以理解为是格式化字符串的一种方式，和下面功能等效, **`但`** 中间的空格也会被纳入输出范围
:::

```py
print(buffr + buffr2)  #这个是连接了两个字符串.
```

:::tip 补充
可以理解字符串变量就是一个对象,类似 java 里的 String 类对象一样自带的内置函数方法
:::
